Dans la grande scène d'un programme C++, les objets sont comme des acteurs. Certains restent sur scène toute la pièce, mais la plupart—les objets locaux—sont des entités éphémères qui apparaissent pour une seule scène et disparaissent à jamais. Cette leçon établit la distinction fondamentale entre la visibilité (portée) et sa existence (durée de vie).
1. Portée Léxicale vs. Durée de Vie d'Exécution
La portée d'un nom est une propriété au moment de la compilation : c'est la région du texte du programme où un nom peut être utilisé. À l'inverse, durée de vie est une propriété au moment de l'exécution : la durée pendant laquelle l'objet occupe une adresse mémoire physique.
2. Objets Automatiques
Les objets qui existent uniquement pendant l'exécution d'un bloc sont des objets automatiques. Ils sont créés lorsque le contrôle passe par leur définition (int n = 0;) et détruits lorsque la parenthèse fermante (}) est atteinte. Les paramètres sont en réalité des variables locales initialisées par les arguments.